home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAM_RAD / PROPAGAT / 3068.ZIP / MAPPER.DOC < prev    next >
Text File  |  1991-11-24  |  26KB  |  485 lines

  1.          MAPPER86/87 .. A DX MAP DRAWING and Propagation Program
  2.            for IBM PC Compatibles with graphics capability.
  3.  
  4.                              Version 7.1
  5.  
  6.                                   by
  7.                            Dennis P. Murray
  8.                         11165 McDonald Street
  9.                         Culver City, Ca. 90230
  10.                          CompuServ 72770,2765
  11.                            10 August, 1991
  12.  
  13. This program, written for BASIC compilers such as MICROSOFT QUICK BASIC or
  14. BORLAND TURBO BASIC, displays a map of the world centered on a
  15. user-selectable QTH, and does propagation predictions based upon one of 4
  16. possible methods based upon modified MINIMUF 3.5 or MAXIMUF 3.0 methods. It
  17. shows the regions of sunlight and darkness around the world, and updates
  18. these regions automatically at user- specified time intervals. It can also
  19. accept arbitrary times and dates at the user option. The program accepts
  20. DXCC prefixes or latitude/longitude values for the DX location, draws the
  21. path from the home QTH to that location, and displays the range, azimuth
  22. and wave launch elevation angle from the home QTH. The user can select
  23. either short or long paths; the sunspot number; antenna height, gain, and
  24. polarization for both home QTH and DX station; transmit power; and the
  25. minimum wave launch angle to be used for propagation prediction. The
  26. propagation prediction gives the MUF (maximum usable frequency), LUF
  27. (lowest usable frequency) based upon E-layer screening, and the minimum
  28. number of F-layer hops for the minimum launch angle. Predictions of signal
  29. strength are made for Ham Band frequencies which include D-layer
  30. absorption, reflection losses, and transmit and receive antenna losses due
  31. to ground plane reflection at low elevation angles.
  32.  
  33. This program is written for IBM PC compatible computers with a Graphics
  34. capability and color display. The program runs quite quickly on an AT clone
  35. with a hard disk and 640k of RAM, but it might be a 'dog' on a floppy-only
  36. machine because it must read some long files for the map data.
  37.  
  38. The program is being uploaded in two versions, named MAPPER86 and MAPPER87.
  39. MAPPER86 is compiled using 'alternate math' option of the Microsoft BASIC
  40. 7.1 Professional Development System in order to use floating point
  41. computations under the Microsoft Binary Format which run much faster on
  42. machines without 80x87 math co-processors than do computations under the
  43. IEEE format supported by QBasic version 4.0 and later. MAPPER87 can be
  44. compiled under QBasic v 4.5 or BC7.1 using the IEEE floating point math
  45. option. It will run on machines with or without a Math Coprocessor, but it
  46. is very slow without one because of the lousy software emulation of the
  47. 80x87 routines which Microsoft has provided. The MAPPER86 version is
  48. strongly recommended if you don't have an 80x87.
  49.  
  50. Both versions now support all graphics adapters ( CGA, EGA, EGA/Monochrome,
  51. MCGA, VGA, and HERCULES). If you want to use the Hercules mode you must
  52. first load the Microsoft Hercules driver MSHERC.COM which I have included
  53. in the package courtesy of Microsoft.
  54.  
  55. Version 7.0 differs from earlier releases in that it has an extended DX
  56. Prefix list, uses a more detailed world map data file with a different file
  57. format than previous versions, and is somewhat more 'user friendly' about
  58. accepting input data. It also provides a facility for printing out a 24
  59. hour summary of propagation conditions for a given path, together with a
  60. plot of the NUF over that period. An 80 column printer which recognizes a
  61. Form Feed command is needed for this option.
  62.  
  63.  Most importantly, Version 7 has added an entirely new method for
  64. propagation predictions based upon MAXIMUF 3.0, and allows the user to
  65. select whether the Maximum Useable Frequency ( MUF ) uses the ionospheric
  66. hops nearest to the transmitter and the receiver for its determination, or
  67. takes the worst MUF among all the hops along a multi-hop path.
  68.  
  69.  
  70. The author does not intend to support this software, but is simply
  71. releasing it into the public domain for non-commercial use by HAMS who know
  72. what they are doing with their computer. The BASIC source code is included
  73. for that reason.
  74.  
  75. The following files are a part of the MAPPER system of files:
  76.  
  77.           1- MAPPER86/87.BAS  The Program Source Code Specific for Either
  78.                               Q-BASIC v4.5  or BASIC 7.1 PDS
  79.  
  80.           2- MAPPER1.INC      An 'INCLUDE' File Containing the beginning
  81.                               source code common to both versions.
  82.  
  83.           3- MAPPER2.INC      An 'INCLUDE' File containing most of the
  84.                               mapping source code common to both versions.
  85.  
  86.           4- MAP-SUBS.BAS     Source code for the propagation prediction
  87.                               calculations.
  88.  
  89.           5- MAP-COM.INC      An 'INCLUDE' File containing some COMMON and DIM
  90.                               statements needed by both code modules.
  91.  
  92.           6- MAP-DEF.INC      An 'INCLUDE' file containing function definitions
  93.                               needed by both modules.
  94.  
  95.           7- MAPPER86/87.EXE  the Q-BASIC 4.5 or BASIC 7.1 executable code.
  96.  
  97.           8- MAPPER.ATL       An Atlas of DXCC countries and their
  98.                               latitudes, longitudes, and DX prefix.
  99.                               This is an ASCII file ,sorted by prefix,
  100.                               which can be added onto by the user with
  101.                               a word processor or text editor.
  102.  
  103.           9- PREFIX.ATL       An Extended Atlas of country prefixes and
  104.                               their latitudes, longitudes. This file uses
  105.                               the official internationally designated
  106.                               prefix ranges to identify the country and
  107.                               permits identification of some of the more
  108.                               exotic DX call signs which have gotten more
  109.                               common. This is an ASCII file ,sorted by
  110.                               prefix, which can be added onto by the user
  111.                               with a word processor or text editor.
  112.  
  113.          10- MAPPER.DEF       A short file used to store some default
  114.                               values used by the program.
  115.  
  116.  
  117.          11- MAPPER.DOC       This instruction file.
  118.  
  119.          12- WORLD.All        A large file containing the lat/lon of the
  120.                               world's borders. This is used to recompute
  121.                               the map whenever the map center point is
  122.                               redefined.
  123.  
  124.          13- MSHERC.COM       A Microsoft program to permit the use of a
  125.                               Hercules video adapter with MAPPER87. It must
  126.                               be executed prior to executing MAPPER87. This
  127.                               option is not available for MAPPER86 because
  128.                               that version is compiled under Quick Basic
  129.                               Version 3 which did not support Hercules
  130.                               video.
  131.  
  132.          14- MAPPER1/2.SCR    Large files which are used to store and
  133.                               retrieve the screen data for a world map
  134.                               centered on the user's location. These files
  135.                               are not supplied in the .ARC files but
  136.                               created by the program when it is first used
  137.                               and they are rewritten whenever the user
  138.                               changes the 'Home' location. ( It is
  139.                               interesting to view the world as seen from DX
  140.                               locations.) This data is read into a large
  141.                               array in memory to permit rapid redrawing of
  142.                               the map as the sun moves. The file is written
  143.                               into the integer array NSTORE by BLOAD and
  144.                               BSAVE commands. Because the program uses a
  145.                               lot of memory to speed things up, this array
  146.                               is DYNAMIC and does not generally reside in
  147.                               the normal BASIC data segment.
  148.  
  149.         15- SEA-MAP.DAT       A data file which contains a raster map of
  150.                               the world's oceans in a bit-map format in 1
  151.                               degree intervals of latitude and longitude.
  152.                               This file is read into an array when the
  153.                               program is started. It is used to determine
  154.                               whether propagation 'bounce' points are on
  155.                               land or sea in order to compute the correct
  156.                               terrain reflection loss for that hop.
  157.  
  158. To accommodate different uses I have broken the file set into three ARC
  159. distribution files:
  160.  
  161.             1- MAPR86.ARC     is intended for those who only want to
  162.                               operate MAPPER86 and who don't have math
  163.                               coprocessors. It contains the following
  164.                               files:
  165.                                    MAPPER.ATL
  166.                                    MAPPER.DEF
  167.                                    MAPPER.DOC
  168.                                    MAPPER86.EXE
  169.                                    MSHERC.COM
  170.                                    PREFIX.ATL
  171.                                    WORLD.ALL
  172.                                    SEA-MAP.DAT
  173.  
  174.             2- MAPR87.ARC     is intended for those who only want to
  175.                               operate MAPPER87 and who do have math
  176.                               coprocessors. It contains the following
  177.                               files:
  178.                                    MAPPER.ATL
  179.                                    MAPPER.DEF
  180.                                    MAPPER.DOC
  181.                                    MAPPER87.EXE
  182.                                    MSHERC.COM
  183.                                    PREFIX.ATL
  184.                                    WORLD.ALL
  185.                                    SEA-MAP.DAT
  186.  
  187.             3- MAPPER.ARC     is intended for those who are interested in
  188.                               studying, modifying, customizing, or
  189.                               recompiling the MAPPER program to suit their
  190.                               own purposes. It contains the source code
  191.                               files for the MAPPER system:
  192.                                    MAPPER.DOC
  193.                                    MAPPER1.INC
  194.                                    MAPPER2.INC
  195.                                    MAPPER86.BAS
  196.                                    MAPPER87.BAS
  197.                                    MAP-SUBS.BAS
  198.                                    MAP-COM.INC
  199.                                    MAP-DEF.INC
  200.  
  201. The author encourages the distribution of this program to anyone who might
  202. find it useful, or onto bulletin boards which deal with HAM radio or
  203. shortwave listening. Please make sure to include ALL the required files for
  204. one of the ARC distribution sets described above in any uploading however.
  205.  
  206.  
  207.  
  208.  
  209. INSTRUCTIONS:
  210.  
  211.  
  212. To run this program simply enter 'MAPPER86' or 'MAPPER87'. After an initial
  213. message explaining the program is displayed, and you press any key to
  214. proceed, you will be presented with a 8-choice initial menu which allows
  215. you to change the default values of:
  216.  
  217.         1- Sunspot number
  218.         2- Home QTH latitude and longitude
  219.         3- The time interval at which the daylight/darkness areas are
  220.             redrawn.
  221.         4- Transmitter power output.
  222.         5- Minimum elevation angle for propagation predictions.
  223.         6- Graphics Mode
  224.         7- Method for Propagation prediction.
  225.         8- Change or View the Set of Frequency Bands, and the antenna
  226.            heights, gains, and polarizations for each band. This will drop
  227.            you into a submenu which permits your custom definition of up to
  228.            10 Bands of interest, together with antenna parameters for both
  229.            home and DX stations. SWLs may want to use this feature to
  230.            change the frequency set to their favorite HF Broadcast bands.
  231.  
  232.  
  233. Pressing the appropriate number key will put up prompts to allow changes to
  234. these variables, and will return you to this menu after a change is
  235. entered. (Important: Make sure you select the proper display type for your
  236. machine at this menu when you first run it. This package will have a file
  237. of my own default values for the parameters in this menu, and they are
  238. unlikely to be the correct values for your machine.)
  239.  
  240. After you have made the appropriate changes pressing <ENTER> at the menu
  241. prompt will store these new values in the MAPPER.DEF file and proceed on to
  242. the map drawing.
  243.  
  244.      The map drawing will first put up a blank box, then calculate the
  245. position of the sun at the time and date currently held by the DOS, draw
  246. the solar terminator ( it looks like a satellite ground trace ), and color
  247. the sun-lit portions of the world in red. It will then go on to draw the
  248. country boundaries, color the oceans blue, and color the USA green. The
  249. land areas which are in darkness will show up in black. The program may
  250. miss coloring part of the oceans blue because of the position of the solar
  251. terminator blocking the PAINT commands used in the subroutine at line 8000
  252. ... . I got tired of adding ocean points to this routine to cover all the
  253. contingencies.
  254.  
  255.      After the map is drawn a Menu bar will appear on the bottom line of
  256. the screen, with 9 choices selected by the function keys:
  257.  
  258.            f1-   Select DX Prefix.
  259.                 You will be prompted to enter a DX prefix ( eg. ZS for
  260.                 S. Africa ). The program will then search the DX atlas
  261.                 for an occurrence of this prefix. It will display all
  262.                 of the entries ( ie ZS1,ZS2,... ) that contain this
  263.                 string and ask you to select one. If the number of
  264.                 candidate entries is large you can simply <ENTER> to
  265.                 continue the search.
  266.  
  267.                 When a selection is made the program will fetch
  268.                 the location of the prefix, make a propagation
  269.                 prediction for the currently selected date and time,
  270.                 draw the path from your QTH to that location, and
  271.                 display sundry useful information at the top of the
  272.                 screen. On the left of the screen the signal strength
  273.                 predictions will be shown for all Ham bands for which
  274.                 the frequency is more than 80% of the lowest usable
  275.                 frequency (LUF), less than 120% of the maximum usable
  276.                 frequency (MUF), and whose predicted signal strength
  277.                 is higher than -20dB relative to 0.5 microvolts into a
  278.                 50 ohm receiver input.
  279.  
  280.                 For each band which meets these criteria I display the
  281.                 frequency, the absorption losses (Labs), the ground
  282.                 reflection losses (Lref), the transmit and receive
  283.                 antenna losses due to ground reflection ( Ltx, Lrx ),
  284.                 and signal strength ( Prcv ). The losses are given in
  285.                 dB. The signal strength is given in dB relative to 0.5
  286.                 microvolts into 50 ohms. This is about an S-1 signal
  287.                 level for most Ham receivers, and S-9 usually
  288.                 corresponds to 50 microvolts at the antenna terminals.
  289.                 Thus a signal strength of 40 dB would correspond to a
  290.                 S-9 prediction.
  291.  
  292.                 The user should be cautioned that the signal strength
  293.                 predictions are very uncertain. I only calculate paths
  294.                 via the F2 layer, and there a great number of other
  295.                 propagation modes possible which may be better or
  296.                 worse than the pure F2 mode. Don't blame the author if
  297.                 this program says that you can't possibly work
  298.                 Australia when you are hearing VK's with S-9 signals.
  299.                 These are only crude indications of the likelihood of
  300.                 a path being open.
  301.  
  302.            f2-Specify Country Name.
  303.                 Same as option 1 except that you are prompted for the
  304.                 name of a country ( or a subset of that name such as
  305.                 'AUS', which will find both Austria and Australia ).
  306.                 The search process is insensitive to the case of your
  307.                 entry.
  308.  
  309.            f3-Specify Lat/Lon.
  310.                 Same as the above option except you will be prompted
  311.                 to enter the latitude and longitude of the desired DX
  312.                 location.
  313.  
  314.  
  315.            f4-Select Date/Time.
  316.                 Prompts for a new date and time to be used to
  317.                 calculate solar terminator and make propagation
  318.                 predictions. <ENTER> responses to either of these
  319.                 prompts will fetch the current DOS value of date or
  320.                 time. This option will also turn off the automatic
  321.                 updating of the terminator and map redraw.
  322.  
  323.            f5-Use Real Time.
  324.                 This option will reset the above option to the real
  325.                 (DOS) date and time and enable the auto update
  326.                 feature.
  327.  
  328.            f6-Toggle Between Short and Long Path.
  329.                 This toggles the path from the long path option back
  330.                 to short path and vice-versa
  331.  
  332.  
  333.            f7-Change Parameters.
  334.                 This returns you to the 7 choice initial menu to
  335.                 change the various default parameters such as sunspot
  336.                 number, antenna heights, power, etc.
  337.  
  338.            f8-Toggle Printed Output of 24 hour Propagation Predictions
  339.                 on or off. When F8 is hit for the first time it 'toggles'
  340.                 this function on and subsequent hits turn the option on and
  341.                 off in sequence. When this option is 'on' it prints
  342.                 out the same information on propagation that is displayed
  343.                 on the screen, but does it for an entire day at one hour
  344.                 intervals, and plots a graph of the MUF versus time. The
  345.                 printing starts when you select a new DX location, not
  346.                 immediately after the function is toggled on.
  347.  
  348.            f9-Quit.
  349.                 Exits the program and returns you to DOS.
  350.  
  351.  
  352.      The program is entirely menu-driven so you don't have to remember
  353. any special commands to use it.
  354.  
  355.      Good luck!!
  356.  
  357. Instructions for recompiling:
  358.  
  359. Some of you may wish to customize this program in some way, so I have
  360. included the BASIC source code. If you make changes you will have to
  361. recompile and LINK the code. The following instructions may help you.
  362.  
  363. If you have a math coprocessor or if you don't care how slow the program
  364. runs then compile using BASIC PDS 7.1 or Quick-Basic 4.0 or later:
  365.  
  366.          Compile and LINK Using the following command lines:
  367.  
  368.          BC MAPPER87/D/X/O/V; <Rtn>
  369.          BC MAP-subs/D/X/O;   <Rtn>
  370.          LINK MAPPER87+MAP-SUBS; <Rtn>
  371.  
  372.  
  373. If you don't have a coprocessor and you want faster execution then compile
  374. using BASIC PDS 7.1 with the /FPa (alternate math package option).
  375.  
  376.  
  377.          BC MAPPER86/D/X/O/V/FPa; <Rtn>
  378.          BC MAP-SUBS/D/X/O/FPa;   <Rtn>
  379.          LINK MAPPER86+MAP-SUBS; <Rtn>
  380.  
  381. This program is totally incompatible with the BASIC Interpreter which IBM
  382. and Microsoft supply with their DOS. (i.e. BASICA of GWBASIC ). There is
  383. not a prayer of making it run under the interpreter.
  384.  
  385.  
  386.  
  387. Some Technical Information:
  388.  
  389. The propagation calculations are based upon either the MINIMUF 3.5 method
  390. or the MAXIMUF 3.0 method, but with many modifications by this author. I am
  391. indebted to Robert R. Brown, NM7M, for providing me with the MAXIMUF 3.0
  392. method for MUF calculation. I had been trying (unsucessfully) since Version
  393. 2 of this program to obtain this method because it has been evaluated as
  394. the most accurate PC-based method in comparison with IONCAP ( The elaborate
  395. Ionospheric model developed by the Institute of Telecommunication Sciences
  396. in Boulder, CO. which is normally used as a standard of comparison). The
  397. method is due originally to Raymond Fricker of the BBC External Services.
  398. Its key element is a mathematical model for the vertical incidence sounding
  399. frequency obtained by noting that the ionosphere mainly depends upon the
  400. solar zenith angle and geomagnetic latitude. He then did a curve-fit of the
  401. the CCIR Report 340 vertical sounding frequency to the function
  402.  
  403.      Fv= A*Cos( B*(T-C) )* Cos ( Z+D))^0.5
  404.  
  405. where T is the local time, Z is the geomagnetic latitude, and A,B,C,D are
  406. 'constants' which depend upon Sunspot number and season of the year. Having
  407. obtained the main dependence in this form, he the went on to derive a set
  408. of 20 'correction' terms to improve the fit. The method also uses a
  409. curve-fit to the virtual height of the F2 layer. The method's equations can
  410. be obtained from examination of the Subroutine CRIT.FREQ in the
  411. MAP-SUBS.BAS source code.
  412.  
  413. I have made a number of enhancements to the 'standard' propagation
  414. calculations:
  415.  
  416.    1- The 'standard' CCIR method for hand-calculating MUF uses only the
  417.       first and last ionospheric bounce points ( the two control point
  418.       method ), This method is available in MAPPER. In addition, I have
  419.       provided the user with the option to let MAPPER evaluate the MUF at
  420.       every hop and select the worst-case condition out of all of them.
  421.       This results in more pessimistic MUF and LUF estimates than the
  422.       endpoint method because conditions over parts of the total path may
  423.       be much different than conditions at only the ends of the path. A
  424.       path with a hop near the near the North pole is an important example.
  425.  
  426.       I leave it to the user to try the various methods and see which works
  427.       best for you. I would be interested in any results you care to share.
  428.  
  429.  
  430.    2- I have included the E-layer screening frequency and lowest-
  431.       usable frequency ( LUF ) estimation technique given in chapter 4
  432.       of 'Amateur Radio Software ', by John Morris GM4ANB , RSGB
  433.       Books, Lambda House, Cranborne Road, Potters Bar, Hertfordshire
  434.       EN6 3JW. The subroutine starting at line 45000 contains this
  435.       calculation.
  436.  
  437.     3-I have used what apparently is the HAM convention for longitudes
  438.       being positive-West for the input and output in this program, in
  439.       the PROPAGATE subroutine, and in the DX Atlas file MAPPER.ATL.
  440.       However, in the internals of the program I immediately reverse
  441.       the sign of the longitude. Being an engineer by training I think
  442.       in terms of right-handed coordinate systems! Therefore those who
  443.       want to modify the program should be wary of the sign of the
  444.       longitude being used.
  445.  
  446.     4-Note that I have changed the names of the variables in the
  447.       MINIMUF subroutine from the standard values to names which are
  448.       descriptive of what the variable actually is.
  449.  
  450.     5-I have augmented the propagation predictions with a signal
  451.       strength prediction. For each ionospheric control (bounce) point
  452.       an estimate of the D-layer absorption is made according to the
  453.       method in chapter 5 of Davies, "Ionospheric Radio Propagation",
  454.       NBS monograph 80, 1965. The total D-region absorption is summed
  455.       up for all control points. The subroutine at line 46000 contains
  456.       this calculation.
  457.  
  458.     6-In addition, a calculation of the loss due to ground reflection is
  459.       made for each ground reflection point along the path. At each of
  460.       these points the array SEA-MAP is decoded for the reflection point
  461.       location and if it is a sea point then the reflection coefficient for
  462.       sea water is calculated ( dielectric constant of 80, conductivity of
  463.       4 mho/m ). If the reflection point is over land then a dielectric
  464.       constant of 4 and conductivity of 0.01 mho/m are used. The Fresnel
  465.       reflection coefficients for both horizontal an vertical polarization
  466.       are power-averaged to account for the random polarization of the wave
  467.       due to Faraday rotation at HF frequencies. I have also modified the
  468.       reflection coefficients to account for surface roughness. A RMS
  469.       surface roughness of 4m is used on the sea, and 15m for land points.
  470.       The subroutine REFLECT at line 41000 of module MAP-SUBS makes the
  471.       reflection calculations.
  472.  
  473.     7-To account for the fact that most Hams have fairly low antenna
  474.       heights, thus suffer large losses at low elevation angles, I
  475.       explicitly calculate the multipath cancellation losses for each
  476.       antenna in the subroutine MULTIPATH at line 42000 in MAP-SUBS.BAS.
  477.       This is the standard Fresnel reflection calculation without surface
  478.       roughness included. Most urban locations will be worse than this
  479.       calculation suggests because buildings in the foreground will
  480.       actually shadow the low angle line-of-sight and modify the reflection
  481.       area. If you know you have poor line-of-sight you should modify the
  482.       minimum launch angle setting at the initial menu appropriately.
  483.  
  484.  
  485.